import SwiftUI

/*
 * 图表示例
 */
class ChartExample: FCUIView{
    var m_chart = FCChart()
    
    /*
     * 鼠标按下方法
     * view:视图
     * mp:坐标
     * buttons:按钮
     * clicks:点击次数
     * delta:滚轮值
     */
    func onMouseDown(view:FCView, mp:FCPoint, buttons:Int, clicks:Int, delta:Int)
    {
        var firstTouch = false
        var secondTouch = false
        let firstPoint = mp
        let secondPoint = mp
        if buttons == 1{
            firstTouch = true
        }
        else if buttons == 2{
            secondTouch = true
        }
        if view.viewType == "chart"{
            let chart = view as! FCChart
            if chart.addingPlotChart.count > 0{
                addPlotDefault(chart:chart, firstTouch:firstTouch, firstPoint:firstPoint, secondTouch:secondTouch, secondPoint:secondPoint)
                chart.addingPlotChart = ""
                invalidateView(view:view.getParent())
            } else {
                touchDownChart(chart:chart, firstTouch:firstTouch, firstPoint:firstPoint, secondTouch:secondTouch, secondPoint:secondPoint)
                invalidateView(view:view.getParent())
            }
        }else{
            onMouseDownDefault(view: view, mp: mp, buttons: buttons, clicks: clicks, delta: delta)
        }
    }

    /*
    * 点击方法
    * view:视图
    * firstTouch:是否第一次触摸
    * firstPoint:第一次触摸的坐标
    * secondTouch:是否第二次触摸
    * secondPoint:第二次触摸的坐标
    * clcks:点击次数
    */
    func onClick(view:FCView, firstTouch:Bool, firstPoint:FCPoint, secondTouch:Bool, secondPoint:FCPoint, clicks:Int) {
        onClickDefault(view:view, firstTouch:firstTouch, firstPoint:firstPoint, secondTouch:secondTouch, secondPoint:secondPoint, clicks: clicks)
        if view.viewName == "Indicator" {
            if view.text == "BOLL" || view.text == "MA" {
                m_chart.mainIndicator = view.text
            } else {
                m_chart.showIndicator = view.text
            }
            calcChartIndicator(chart:m_chart)
            let tabView = view.getParent().getParent().getParent() as! FCTabView
            selectTabPage(tabView: tabView, tabPage:tabView.tabPages[0])
            invalidateView(view:view.getParent())
        } else if view.viewName == "Plot" {
            m_chart.addingPlotChart = view.text
            let tabView = view.getParent().getParent().getParent() as! FCTabView
            selectTabPage(tabView: tabView, tabPage:tabView.tabPages[0])
            invalidateView(view:view.getParent())
        }
    }
    
    /*
     * 获取数据
     */
    func getSecurityDatas()->[SecurityData]{
        var securityDatas = [SecurityData]()
        var sData1 = SecurityData()
        sData1.volume = 78469.756458
        sData1.close = 15684.25
        sData1.high = 15965.01
        sData1.low = 15272.69
        sData1.open = 15297.22
        sData1.date = 1605052800.0
        securityDatas.append(sData1)
        var sData2 = SecurityData()
        sData2.volume = 102196.366592
        sData2.close = 16291.87
        sData2.high = 16340.71
        sData2.low = 15440.65
        sData2.open = 15684.26
        sData2.date = 1605139200.0
        securityDatas.append(sData2)
        var sData3 = SecurityData()
        sData3.volume = 75691.891014
        sData3.close = 16320.71
        sData3.high = 16480.01
        sData3.low = 15952.36
        sData3.open = 16291.86
        sData3.date = 1605225600.0
        securityDatas.append(sData3)
        var sData4 = SecurityData()
        sData4.volume = 59116.357179
        sData4.close = 16070.46
        sData4.high = 16327.0
        sData4.low = 15670.01
        sData4.open = 16320.05
        sData4.date = 1605312000.0
        securityDatas.append(sData4)
        var sData5 = SecurityData()
        sData5.volume = 43596.851513
        sData5.close = 15957.01
        sData5.high = 16180.01
        sData5.low = 15774.73
        sData5.open = 16069.57
        sData5.date = 1605398400.0
        securityDatas.append(sData5)
        var sData6 = SecurityData()
        sData6.volume = 81300.685924
        sData6.close = 16713.58
        sData6.high = 16880.01
        sData6.low = 15864.01
        sData6.open = 15957.01
        sData6.date = 1605484800.0
        securityDatas.append(sData6)
        var sData7 = SecurityData()
        sData7.volume = 115192.02613
        sData7.close = 17659.39
        sData7.high = 17858.83
        sData7.low = 16538.01
        sData7.open = 16713.09
        sData7.date = 1605571200.0
        securityDatas.append(sData7)
        var sData8 = SecurityData()
        sData8.volume = 141984.264415
        sData8.close = 17776.13
        sData8.high = 18476.94
        sData8.low = 17222.01
        sData8.open = 17659.39
        sData8.date = 1605657600.0
        securityDatas.append(sData8)
        var sData9 = SecurityData()
        sData9.volume = 93009.571008
        sData9.close = 17802.83
        sData9.high = 18179.81
        sData9.low = 17335.66
        sData9.open = 17777.76
        sData9.date = 1605744000.0
        securityDatas.append(sData9)
        var sData10 = SecurityData()
        sData10.volume = 88423.028489
        sData10.close = 18655.68
        sData10.high = 18815.23
        sData10.low = 17740.05
        sData10.open = 17802.82
        sData10.date = 1605830400.0
        securityDatas.append(sData10)
        var sData11 = SecurityData()
        sData11.volume = 71308.137138
        sData11.close = 18703.81
        sData11.high = 18965.91
        sData11.low = 18308.59
        sData11.open = 18655.67
        sData11.date = 1605916800.0
        securityDatas.append(sData11)
        var sData12 = SecurityData()
        sData12.volume = 74492.806006
        sData12.close = 18414.61
        sData12.high = 18750.01
        sData12.low = 17699.8
        sData12.open = 18703.81
        sData12.date = 1606003200.0
        securityDatas.append(sData12)
        var sData13 = SecurityData()
        sData13.volume = 74179.661546
        sData13.close = 18368.01
        sData13.high = 18766.01
        sData13.low = 18000.01
        sData13.open = 18413.89
        sData13.date = 1606089600.0
        securityDatas.append(sData13)
        var sData14 = SecurityData()
        sData14.volume = 70126.693681
        sData14.close = 19160.02
        sData14.high = 19410.0
        sData14.low = 18207.99
        sData14.open = 18368.02
        sData14.date = 1606176000.0
        securityDatas.append(sData14)
        var sData15 = SecurityData()
        sData15.volume = 70760.56353
        sData15.close = 18719.12
        sData15.high = 19444.01
        sData15.low = 18570.01
        sData15.open = 19160.01
        sData15.date = 1606262400.0
        securityDatas.append(sData15)
        var sData16 = SecurityData()
        sData16.volume = 102420.321403
        sData16.close = 17149.48
        sData16.high = 18915.04
        sData16.low = 16188.01
        sData16.open = 18718.84
        sData16.date = 1606348800.0
        securityDatas.append(sData16)
        var sData17 = SecurityData()
        sData17.volume = 84036.578341
        sData17.close = 17139.53
        sData17.high = 17457.63
        sData17.low = 16438.09
        sData17.open = 17149.48
        sData17.date = 1606435200.0
        securityDatas.append(sData17)
        var sData18 = SecurityData()
        sData18.volume = 60835.734083
        sData18.close = 17719.86
        sData18.high = 17880.5
        sData18.low = 16865.57
        sData18.open = 17139.54
        sData18.date = 1606521600.0
        securityDatas.append(sData18)
        var sData19 = SecurityData()
        sData19.volume = 55329.026303
        sData19.close = 18185.0
        sData19.high = 18360.06
        sData19.low = 17517.01
        sData19.open = 17719.85
        sData19.date = 1606608000.0
        securityDatas.append(sData19)
        var sData20 = SecurityData()
        sData20.volume = 96227.350495
        sData20.close = 19695.88
        sData20.high = 19777.04
        sData20.low = 18185.0
        sData20.open = 18185.01
        sData20.date = 1606694400.0
        securityDatas.append(sData20)
        var sData21 = SecurityData()
        sData21.volume = 100331.141203
        sData21.close = 18764.97
        sData21.high = 19888.01
        sData21.low = 18350.0
        sData21.open = 19695.88
        sData21.date = 1606780800.0
        securityDatas.append(sData21)
        var sData22 = SecurityData()
        sData22.volume = 75848.875728
        sData22.close = 19204.1
        sData22.high = 19342.01
        sData22.low = 18330.01
        sData22.open = 18764.97
        sData22.date = 1606867200.0
        securityDatas.append(sData22)
        var sData23 = SecurityData()
        sData23.volume = 64987.682732
        sData23.close = 19421.91
        sData23.high = 19598.01
        sData23.low = 18867.21
        sData23.open = 19204.09
        sData23.date = 1606953600.0
        securityDatas.append(sData23)
        var sData24 = SecurityData()
        sData24.volume = 65481.220724
        sData24.close = 18650.53
        sData24.high = 19527.01
        sData24.low = 18565.32
        sData24.open = 19422.35
        sData24.date = 1607040000.0
        securityDatas.append(sData24)
        var sData25 = SecurityData()
        sData25.volume = 42922.758573
        sData25.close = 19147.67
        sData25.high = 19177.01
        sData25.low = 18500.01
        sData25.open = 18650.52
        sData25.date = 1607126400.0
        securityDatas.append(sData25)
        var sData26 = SecurityData()
        sData26.volume = 37043.101861
        sData26.close = 19359.41
        sData26.high = 19420.01
        sData26.low = 18857.01
        sData26.open = 19147.67
        sData26.date = 1607212800.0
        securityDatas.append(sData26)
        var sData27 = SecurityData()
        sData27.volume = 40833.661907
        sData27.close = 19166.91
        sData27.high = 19420.92
        sData27.low = 18902.89
        sData27.open = 19358.68
        sData27.date = 1607299200.0
        securityDatas.append(sData27)
        var sData28 = SecurityData()
        sData28.volume = 56080.515386
        sData28.close = 18324.12
        sData28.high = 19294.85
        sData28.low = 18200.01
        sData28.open = 19166.91
        sData28.date = 1607385600.0
        securityDatas.append(sData28)
        var sData29 = SecurityData()
        sData29.volume = 75498.213856
        sData29.close = 18541.29
        sData29.high = 18639.58
        sData29.low = 17650.01
        sData29.open = 18324.12
        sData29.date = 1607472000.0
        securityDatas.append(sData29)
        var sData30 = SecurityData()
        sData30.volume = 52890.685094
        sData30.close = 18254.64
        sData30.high = 18557.33
        sData30.low = 17911.13
        sData30.open = 18541.3
        sData30.date = 1607558400.0
        securityDatas.append(sData30)
        var sData31 = SecurityData()
        sData31.volume = 72610.734259
        sData31.close = 18036.54
        sData31.high = 18292.74
        sData31.low = 17572.34
        sData31.open = 18254.82
        sData31.date = 1607644800.0
        securityDatas.append(sData31)
        var sData32 = SecurityData()
        sData32.volume = 47592.761572
        sData32.close = 18808.7
        sData32.high = 18948.67
        sData32.low = 18020.71
        sData32.open = 18036.54
        sData32.date = 1607731200.0
        securityDatas.append(sData32)
        var sData33 = SecurityData()
        sData33.volume = 56560.831744
        sData33.close = 19175.0
        sData33.high = 19411.01
        sData33.low = 18711.13
        sData33.open = 18808.7
        sData33.date = 1607817600.0
        securityDatas.append(sData33)
        var sData34 = SecurityData()
        sData34.volume = 47257.211294
        sData34.close = 19273.15
        sData34.high = 19349.01
        sData34.low = 19000.01
        sData34.open = 19175.0
        sData34.date = 1607904000.0
        securityDatas.append(sData34)
        var sData35 = SecurityData()
        sData35.volume = 61792.483421
        sData35.close = 19426.44
        sData35.high = 19570.01
        sData35.low = 19050.01
        sData35.open = 19273.7
        sData35.date = 1607990400.0
        securityDatas.append(sData35)
        var sData36 = SecurityData()
        sData36.volume = 97061.040854
        sData36.close = 21335.53
        sData36.high = 21560.01
        sData36.low = 19278.61
        sData36.open = 19426.44
        sData36.date = 1608076800.0
        securityDatas.append(sData36)
        var sData37 = SecurityData()
        sData37.volume = 148769.444419
        sData37.close = 22808.99
        sData37.high = 23699.71
        sData37.low = 21233.01
        sData37.open = 21335.53
        sData37.date = 1608163200.0
        securityDatas.append(sData37)
        var sData38 = SecurityData()
        sData38.volume = 79646.144315
        sData38.close = 23107.4
        sData38.high = 23285.19
        sData38.low = 22350.01
        sData38.open = 22797.16
        sData38.date = 1608249600.0
        securityDatas.append(sData38)
        var sData39 = SecurityData()
        sData39.volume = 82430.712232
        sData39.close = 23821.62
        sData39.high = 24171.48
        sData39.low = 22750.01
        sData39.open = 23107.4
        sData39.date = 1608336000.0
        securityDatas.append(sData39)
        var sData40 = SecurityData()
        sData40.volume = 74797.201958
        sData40.close = 23455.53
        sData40.high = 24295.01
        sData40.low = 23060.01
        sData40.open = 23821.61
        sData40.date = 1608422400.0
        securityDatas.append(sData40)
        var sData41 = SecurityData()
        sData41.volume = 83424.441428
        sData41.close = 22719.72
        sData41.high = 24102.78
        sData41.low = 21815.01
        sData41.open = 23455.55
        sData41.date = 1608508800.0
        securityDatas.append(sData41)
        var sData42 = SecurityData()
        sData42.volume = 87033.13616
        sData42.close = 23810.8
        sData42.high = 23837.11
        sData42.low = 22353.41
        sData42.open = 22719.89
        sData42.date = 1608595200.0
        securityDatas.append(sData42)
        var sData43 = SecurityData()
        sData43.volume = 112830.021287
        sData43.close = 23232.77
        sData43.high = 24100.01
        sData43.low = 22810.01
        sData43.open = 23810.8
        sData43.date = 1608681600.0
        securityDatas.append(sData43)
        var sData44 = SecurityData()
        sData44.volume = 69013.844252
        sData44.close = 23729.21
        sData44.high = 23794.44
        sData44.low = 22703.43
        sData44.open = 23232.4
        sData44.date = 1608768000.0
        securityDatas.append(sData44)
        var sData45 = SecurityData()
        sData45.volume = 78024.251646
        sData45.close = 24712.48
        sData45.high = 24789.87
        sData45.low = 23434.74
        sData45.open = 23729.0
        sData45.date = 1608854400.0
        securityDatas.append(sData45)
        var sData46 = SecurityData()
        sData46.volume = 97806.523386
        sData46.close = 26493.4
        sData46.high = 26867.04
        sData46.low = 24500.01
        sData46.open = 24712.48
        sData46.date = 1608940800.0
        securityDatas.append(sData46)
        var sData47 = SecurityData()
        sData47.volume = 145880.8092
        sData47.close = 26281.67
        sData47.high = 28422.01
        sData47.low = 25700.01
        sData47.open = 26493.41
        sData47.date = 1609027200.0
        securityDatas.append(sData47)
        var sData48 = SecurityData()
        sData48.volume = 79408.740817
        sData48.close = 27079.42
        sData48.high = 27500.01
        sData48.low = 26101.01
        sData48.open = 26281.55
        sData48.date = 1609113600.0
        securityDatas.append(sData48)
        var sData49 = SecurityData()
        sData49.volume = 69255.341092
        sData49.close = 27385.01
        sData49.high = 27410.01
        sData49.low = 25880.01
        sData49.open = 27079.43
        sData49.date = 1609200000.0
        securityDatas.append(sData49)
        var sData50 = SecurityData()
        sData50.volume = 95356.067826
        sData50.close = 28875.55
        sData50.high = 28996.01
        sData50.low = 27320.01
        sData50.open = 27385.01
        sData50.date = 1609286400.0
        securityDatas.append(sData50)
        var sData51 = SecurityData()
        sData51.volume = 75491.419522
        sData51.close = 28923.64
        sData51.high = 29300.01
        sData51.low = 27850.01
        sData51.open = 28875.56
        sData51.date = 1609372800.0
        securityDatas.append(sData51)
        var sData52 = SecurityData()
        sData52.volume = 54134.113624
        sData52.close = 29331.7
        sData52.high = 29600.01
        sData52.low = 28624.58
        sData52.open = 28923.64
        sData52.date = 1609459200.0
        securityDatas.append(sData52)
        var sData53 = SecurityData()
        sData53.volume = 126100.088124
        sData53.close = 32178.34
        sData53.high = 33300.01
        sData53.low = 28946.54
        sData53.open = 29331.71
        sData53.date = 1609545600.0
        securityDatas.append(sData53)
        var sData54 = SecurityData()
        sData54.volume = 110771.806254
        sData54.close = 33000.06
        sData54.high = 34778.12
        sData54.low = 31963.0
        sData54.open = 32176.46
        sData54.date = 1609632000.0
        securityDatas.append(sData54)
        var sData55 = SecurityData()
        sData55.volume = 121030.155465
        sData55.close = 31988.72
        sData55.high = 33600.01
        sData55.low = 28130.01
        sData55.open = 33000.06
        sData55.date = 1609718400.0
        securityDatas.append(sData55)
        var sData56 = SecurityData()
        sData56.volume = 111890.475678
        sData56.close = 33949.54
        sData56.high = 34360.01
        sData56.low = 29900.01
        sData56.open = 31989.76
        sData56.date = 1609804800.0
        securityDatas.append(sData56)
        var sData57 = SecurityData()
        sData57.volume = 116093.037717
        sData57.close = 36769.37
        sData57.high = 36939.22
        sData57.low = 33288.01
        sData57.open = 33949.54
        sData57.date = 1609891200.0
        securityDatas.append(sData57)
        var sData58 = SecurityData()
        sData58.volume = 121506.449096
        sData58.close = 39432.29
        sData58.high = 40365.01
        sData58.low = 36300.01
        sData58.open = 36769.37
        sData58.date = 1609977600.0
        securityDatas.append(sData58)
        var sData59 = SecurityData()
        sData59.volume = 138625.042444
        sData59.close = 40582.82
        sData59.high = 41950.01
        sData59.low = 36500.01
        sData59.open = 39432.49
        sData59.date = 1610064000.0
        securityDatas.append(sData59)
        var sData60 = SecurityData()
        sData60.volume = 75785.989675
        sData60.close = 40088.23
        sData60.high = 41380.01
        sData60.low = 38720.01
        sData60.open = 40586.97
        sData60.date = 1610150400.0
        securityDatas.append(sData60)
        var sData61 = SecurityData()
        sData61.volume = 112638.990321
        sData61.close = 38150.03
        sData61.high = 41350.01
        sData61.low = 35111.12
        sData61.open = 40088.23
        sData61.date = 1610236800.0
        securityDatas.append(sData61)
        var sData62 = SecurityData()
        sData62.volume = 231175.583454
        sData62.close = 35404.48
        sData62.high = 38264.75
        sData62.low = 30420.01
        sData62.open = 38150.03
        sData62.date = 1610323200.0
        securityDatas.append(sData62)
        var sData63 = SecurityData()
        sData63.volume = 133948.161996
        sData63.close = 34051.25
        sData63.high = 36628.01
        sData63.low = 32531.01
        sData63.open = 35410.38
        sData63.date = 1610409600.0
        securityDatas.append(sData63)
        var sData64 = SecurityData()
        sData64.volume = 124477.924938
        sData64.close = 37371.39
        sData64.high = 37850.01
        sData64.low = 32380.01
        sData64.open = 34049.16
        sData64.date = 1610496000.0
        securityDatas.append(sData64)
        var sData65 = SecurityData()
        sData65.volume = 102950.399421
        sData65.close = 39144.51
        sData65.high = 40100.01
        sData65.low = 36701.24
        sData65.open = 37371.39
        sData65.date = 1610582400.0
        securityDatas.append(sData65)
        var sData66 = SecurityData()
        sData66.volume = 111365.804668
        sData66.close = 36742.23
        sData66.high = 39747.77
        sData66.low = 34538.89
        sData66.open = 39145.22
        sData66.date = 1610668800.0
        securityDatas.append(sData66)
        var sData67 = SecurityData()
        sData67.volume = 86348.441508
        sData67.close = 35994.99
        sData67.high = 37950.01
        sData67.low = 35357.81
        sData67.open = 36737.44
        sData67.date = 1610755200.0
        securityDatas.append(sData67)
        var sData68 = SecurityData()
        sData68.volume = 80157.737384
        sData68.close = 35828.62
        sData68.high = 36852.51
        sData68.low = 33850.01
        sData68.open = 35994.99
        sData68.date = 1610841600.0
        securityDatas.append(sData68)
        var sData69 = SecurityData()
        sData69.volume = 70693.90404
        sData69.close = 36631.28
        sData69.high = 37469.84
        sData69.low = 34800.01
        sData69.open = 35825.0
        sData69.date = 1610928000.0
        securityDatas.append(sData69)
        var sData70 = SecurityData()
        sData70.volume = 79596.541309
        sData70.close = 35891.5
        sData70.high = 37850.01
        sData70.low = 35844.07
        sData70.open = 36622.47
        sData70.date = 1611014400.0
        securityDatas.append(sData70)
        var sData71 = SecurityData()
        sData71.volume = 89368.432918
        sData71.close = 35468.24
        sData71.high = 36415.32
        sData71.low = 33400.01
        sData71.open = 35901.95
        sData71.date = 1611100800.0
        securityDatas.append(sData71)
        var sData72 = SecurityData()
        sData72.volume = 134548.811336
        sData72.close = 30850.14
        sData72.high = 35600.01
        sData72.low = 30071.01
        sData72.open = 35468.24
        sData72.date = 1611187200.0
        securityDatas.append(sData72)
        var sData73 = SecurityData()
        sData73.volume = 138345.853436
        sData73.close = 32945.18
        sData73.high = 33826.54
        sData73.low = 28850.01
        sData73.open = 30852.0
        sData73.date = 1611273600.0
        securityDatas.append(sData73)
        var sData74 = SecurityData()
        sData74.volume = 64595.297675
        sData74.close = 32078.01
        sData74.high = 33456.01
        sData74.low = 31390.17
        sData74.open = 32950.01
        sData74.date = 1611360000.0
        securityDatas.append(sData74)
        var sData75 = SecurityData()
        sData75.volume = 57978.047966
        sData75.close = 32259.91
        sData75.high = 33071.01
        sData75.low = 30900.01
        sData75.open = 32078.01
        sData75.date = 1611446400.0
        securityDatas.append(sData75)
        var sData76 = SecurityData()
        sData76.volume = 88499.236921
        sData76.close = 32254.21
        sData76.high = 34875.01
        sData76.low = 31910.01
        sData76.open = 32259.46
        sData76.date = 1611532800.0
        securityDatas.append(sData76)
        var sData77 = SecurityData()
        sData77.volume = 84866.207055
        sData77.close = 32467.78
        sData77.high = 32921.89
        sData77.low = 30837.38
        sData77.open = 32254.2
        sData77.date = 1611619200.0
        securityDatas.append(sData77)
        var sData78 = SecurityData()
        sData78.volume = 95911.971711
        sData78.close = 30366.16
        sData78.high = 32557.3
        sData78.low = 29241.73
        sData78.open = 32464.02
        sData78.date = 1611705600.0
        securityDatas.append(sData78)
        var sData79 = SecurityData()
        sData79.volume = 92621.155617
        sData79.close = 33364.87
        sData79.high = 33783.99
        sData79.low = 29842.11
        sData79.open = 30362.2
        sData79.date = 1611792000.0
        securityDatas.append(sData79)
        var sData80 = SecurityData()
        sData80.volume = 193388.622446
        sData80.close = 34252.21
        sData80.high = 38531.91
        sData80.low = 31915.41
        sData80.open = 33368.19
        sData80.date = 1611878400.0
        securityDatas.append(sData80)
        var sData81 = SecurityData()
        sData81.volume = 82674.758249
        sData81.close = 34262.89
        sData81.high = 34933.01
        sData81.low = 32825.01
        sData81.open = 34246.29
        sData81.date = 1611964800.0
        securityDatas.append(sData81)
        var sData82 = SecurityData()
        sData82.volume = 66269.928016
        sData82.close = 33092.99
        sData82.high = 34342.7
        sData82.low = 32171.68
        sData82.open = 34262.9
        sData82.date = 1612051200.0
        securityDatas.append(sData82)
        var sData83 = SecurityData()
        sData83.volume = 80154.567802
        sData83.close = 33526.38
        sData83.high = 34717.28
        sData83.low = 32296.17
        sData83.open = 33089.45
        sData83.date = 1612137600.0
        securityDatas.append(sData83)
        var sData84 = SecurityData()
        sData84.volume = 78056.66988
        sData84.close = 35466.25
        sData84.high = 35984.34
        sData84.low = 33418.01
        sData84.open = 33517.1
        sData84.date = 1612224000.0
        securityDatas.append(sData84)
        var sData85 = SecurityData()
        sData85.volume = 80784.343663
        sData85.close = 37618.88
        sData85.high = 37662.64
        sData85.low = 35362.39
        sData85.open = 35472.72
        sData85.date = 1612310400.0
        securityDatas.append(sData85)
        var sData86 = SecurityData()
        sData86.volume = 89024.320756
        sData86.close = 36936.67
        sData86.high = 38708.28
        sData86.low = 36161.96
        sData86.open = 37620.27
        sData86.date = 1612396800.0
        securityDatas.append(sData86)
        var sData87 = SecurityData()
        sData87.volume = 65910.531514
        sData87.close = 38290.25
        sData87.high = 38310.13
        sData87.low = 36570.01
        sData87.open = 36936.66
        sData87.date = 1612483200.0
        securityDatas.append(sData87)
        var sData88 = SecurityData()
        sData88.volume = 94232.612846
        sData88.close = 39186.95
        sData88.high = 40955.52
        sData88.low = 38215.95
        sData88.open = 38289.33
        sData88.date = 1612569600.0
        securityDatas.append(sData88)
        var sData89 = SecurityData()
        sData89.volume = 81820.439177
        sData89.close = 38795.7
        sData89.high = 39700.01
        sData89.low = 37351.01
        sData89.open = 39181.02
        sData89.date = 1612656000.0
        securityDatas.append(sData89)
        var sData90 = SecurityData()
        sData90.volume = 121568.794672
        sData90.close = 46374.88
        sData90.high = 46794.46
        sData90.low = 37988.9
        sData90.open = 38795.7
        sData90.date = 1612742400.0
        securityDatas.append(sData90)
        var sData91 = SecurityData()
        sData91.volume = 114567.009318
        sData91.close = 46420.43
        sData91.high = 48142.2
        sData91.low = 44961.1
        sData91.open = 46374.87
        sData91.date = 1612828800.0
        securityDatas.append(sData91)
        var sData92 = SecurityData()
        sData92.volume = 78292.89657
        sData92.close = 44807.59
        sData92.high = 47310.01
        sData92.low = 43800.01
        sData92.open = 46420.43
        sData92.date = 1612915200.0
        securityDatas.append(sData92)
        var sData93 = SecurityData()
        sData93.volume = 81033.184776
        sData93.close = 47969.52
        sData93.high = 48678.91
        sData93.low = 43994.03
        sData93.open = 44807.59
        sData93.date = 1613001600.0
        securityDatas.append(sData93)
        var sData94 = SecurityData()
        sData94.volume = 81856.490636
        sData94.close = 47287.61
        sData94.high = 48985.81
        sData94.low = 46400.01
        sData94.open = 47968.67
        sData94.date = 1613088000.0
        securityDatas.append(sData94)
        var sData95 = SecurityData()
        sData95.volume = 58937.84066
        sData95.close = 47153.7
        sData95.high = 48150.01
        sData95.low = 46202.54
        sData95.open = 47298.16
        sData95.date = 1613174400.0
        securityDatas.append(sData95)
        var sData96 = SecurityData()
        sData96.volume = 70700.864117
        sData96.close = 48577.8
        sData96.high = 49707.44
        sData96.low = 47014.18
        sData96.open = 47156.79
        sData96.date = 1613260800.0
        securityDatas.append(sData96)
        var sData97 = SecurityData()
        sData97.volume = 63227.659425
        sData97.close = 47911.11
        sData97.high = 49010.93
        sData97.low = 46174.79
        sData97.open = 48580.48
        sData97.date = 1613347200.0
        securityDatas.append(sData97)
        var sData98 = SecurityData()
        sData98.volume = 78018.176005
        sData98.close = 49133.46
        sData98.high = 50080.22
        sData98.low = 47003.63
        sData98.open = 47911.11
        sData98.date = 1613433600.0
        securityDatas.append(sData98)
        var sData99 = SecurityData()
        sData99.volume = 84886.224046
        sData99.close = 52119.72
        sData99.high = 52618.75
        sData99.low = 48947.01
        sData99.open = 49133.46
        sData99.date = 1613520000.0
        securityDatas.append(sData99)
        var sData100 = SecurityData()
        sData100.volume = 58093.930825
        sData100.close = 51552.61
        sData100.high = 52530.01
        sData100.low = 50901.91
        sData100.open = 52117.68
        sData100.date = 1613606400.0
        securityDatas.append(sData100)
        return securityDatas
    }
    
    /*
     * 初始化布局
     */
    override func onLoad(){
        let isInit = super.m_isInit;
        super.onLoad();
        if !isInit{
            m_paint.defaultUIStyle = "light"
            let width = Double(self.frame.size.width), height = Double(self.frame.size.height)
            renderFaceCat(name:"chartexample", paint: m_paint, size: FCSize(cx:width, cy:height))
            m_paint.addClickEvent(callBack: onClick)
            m_paint.addMouseDownEvent(callBack: onMouseDown)
            let chart = findViewByName(name:"Chart", views:m_paint.views) as! FCChart
            chart.candleStyle = "rect2"
            chart.barStyle = "rect2"
            chart.backColor = "rgb(255,255,255)"
            chart.borderColor = "rgb(150,150,150)"
            chart.textColor = "rgb(0,0,0)"
            chart.scaleColor = "rgb(0,0,0)"
            chart.crossTipColor = "rgb(220,220,220)"
            chart.crossLineColor = "rgb(100,100,100)"
            chart.gridColor = "rgba(0,0,0,125)"
            m_chart = chart
            let tabPage2 = findViewByName(name:"TabPage2", views:m_paint.views)
            let tabPage3 = findViewByName(name:"TabPage3", views:m_paint.views)
            chart.rightVScaleWidth = 60
            chart.location = FCPoint(x:0, y:0)
            chart.data = getSecurityDatas()
            chart.mainIndicator = "BOLL" //主图指标
            chart.showIndicator = "MACD" //显示指标
            resetChartVisibleRecord(chart:chart)
            //checkChartLastVisibleIndex(chart:chart)
            calcChartIndicator(chart:chart)
          
            let indLayout = FCLayoutDiv()
            indLayout.size = FCSize(cx:tabPage2.size.cx, cy:tabPage2.size.cy)
            indLayout.autoWrap = true
            indLayout.dock = "fill"
            addViewToParent(view:indLayout, parent:tabPage2)
            var indicators = [String]()
            indicators.append("MA")
            indicators.append("BOLL")
            indicators.append("MACD")
            indicators.append("KDJ")
            indicators.append("BIAS")
            indicators.append("BBI")
            indicators.append("RSI")
            indicators.append("ROC")
            indicators.append("WR")
            indicators.append("DMA")
            indicators.append("TRIX")
            indicators.append("CCI")
            for i in 0...indicators.count - 1{
                let button = FCButton()
                button.text = indicators[i]
                button.viewName = "Indicator"
                button.size = FCSize(cx:100, cy:50)
                button.margin = FCPadding(left:10, top:10, right:10, bottom:10)
                addViewToParent(view:button, parent:indLayout)
            }
            
            let indLayout2 = FCLayoutDiv()
            indLayout2.size = FCSize(cx:tabPage3.size.cx, cy:tabPage3.size.cy)
            indLayout2.autoWrap = true
            indLayout2.dock = "fill"
            addViewToParent(view:indLayout2, parent:tabPage3)

            var plots = [String]()
            plots.append("Line")
            plots.append("Segment")
            plots.append("Ray")
            plots.append("Triangle")
            plots.append("Rect")
            plots.append("Cycle")
            plots.append("CircumCycle")
            plots.append("Ellipse")
            plots.append("AngleLine")
            plots.append("LRLine")
            plots.append("LRChannel")
            plots.append("SymmetricTriangle")
            plots.append("LRBand")
            plots.append("ParalleGram")
            plots.append("SpeedResist")
            plots.append("FiboFanline")
            plots.append("FiboTimezone")
            plots.append("Percent")
            plots.append("BoxLine")
            plots.append("TironeLevels")
            plots.append("QuadrantLines")
            plots.append("Parallel")
            plots.append("GoldenRatio")
            plots.append("ArrowSegment")
            for i in 0...plots.count - 1{
                let button = FCButton()
                button.text = plots[i]
                button.viewName = "Plot"
                button.size = FCSize(cx:100, cy:50)
                button.margin = FCPadding(left:10, top:10, right:10, bottom:10)
                addViewToParent(view:button, parent:indLayout2)
            }
        }
    }
}
